home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / t_os / tie / src / edit.h < prev    next >
C/C++ Source or Header  |  1991-10-18  |  7KB  |  221 lines

  1. /*
  2.  *  TMENU.INF Editor    エディタ部のための定義ファイル
  3. */
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <stdarg.h>
  8. #include <string.h>
  9. #include <ctype.h>
  10. #include <math.h>
  11. #include <egb.h>
  12. #include <mos.h>
  13. #include <msdos.cf>
  14. #include "tie.h"
  15. #include "cons.h"
  16.  
  17.  
  18. #define MAX_INF 256     /*  .inf ファイルの最大エントリ数  */
  19. #define MAX_ICN 128     /*  .icn ファイルの最大エントリ数  */
  20.  
  21. #define OFFSET      (100)   /*  レイア1のX方向オフセット  */
  22. #define OFSY        (44)
  23.  
  24. #define CLICK_CANCEL    999     /*  右ボタンによるキャンセル  */
  25.  
  26. #define LINE_PTN (0xCCCCCCCC)   /*  点線のパターン  */
  27.  
  28. #define SCR_X1      16      /*  アイテム表示領域  */
  29. #define SCR_Y1      73
  30. #define SCR_X2      608
  31. #define SCR_Y2      (73+340)
  32.  
  33. #define ITEM_X      20      /*  アイテム表示位置  */
  34. #define ITEM_Y      (SCR_Y1+4)
  35. #define ITEM_X_SIZ 120
  36. #define ITEM_Y_SIZ  68
  37.  
  38.  
  39.  
  40. /* ***  メッセージ・ボックスの定義  *** */
  41.  
  42. #define MAX_DSP_MSG 8   /*  メッセージ・ボックスの最大行数  */
  43. #define MAX_BTN_MSG 3   /*  ボタンの最大数  */
  44. #define MAX_SW_MSG  8   /*  スイッチの最大数  */
  45.  
  46.  
  47. /* ***  画面構成  *** */
  48.  
  49. /*  システム行のバック  */
  50.  
  51. #define SYS_X1  0
  52. #define SYS_Y1  0
  53. #define SYS_X2  639
  54. #define SYS_Y2  42
  55.  
  56. /*  スクロール・バーとスクロール・ボタン  */
  57.  
  58. #define MN_X    618
  59. #define MN_Y    (SCR_Y1)
  60. #define UP_X    (MN_X)          /*  逆スクロール・ボタンのX座標  */
  61. #define UP_Y    (MN_Y)          /*  逆スクロール・ボタンのY座標  */
  62. #define DW_X    (MN_X)          /*  スクロール・ボタンのX座標  */
  63. #define DW_Y    (480-32-19-24)  /*  スクロール・ボタンのY座標  */
  64. #define BAR_X   (MN_X)          /*  スクロール・バーのX座標  */
  65. #define BAR_Y   (UP_Y+21)       /*  スクロール・バーのY座標  */
  66. #define BAR_SIZ (DW_Y-BAR_Y-7)  /*  スクロール・バーの大きさ  */
  67.  
  68. /*  ロード・セーブ・終了ボタン と 機能ボタン  */
  69.  
  70. #define TOP_Y   17          /*  システムラインのY座標  */
  71. #define BSIZ_X  21
  72. #define BSIZ_X2 40
  73. #define BSIZ_Y  19
  74.  
  75. #define EX_X    (639-34-2-3)
  76. #define EX_Y    3
  77. #define MD_X    3
  78. #define MD_Y    3
  79.  
  80. #define FN_X    110         /*  機能ボタンの位置  */
  81. #define FN_Y    (TOP_Y)
  82. #define FNSIZX  (49+16)
  83. #define FNSIZY  19
  84.  
  85.  
  86. /* ***  ファンクションの定義  *** */
  87. #define MAX_FUNC    5   /*  移動・削除・交換・編集・複写  */
  88. #define FUNC_MOVE   0
  89. #define FUNC_CHG    1
  90. #define FUNC_DEL    2
  91. #define FUNC_EDIT   3
  92. #define FUNC_COPY   4
  93.  
  94. #define MULTI_BUF   2
  95.  
  96. #define INFBUFSIZ   ((unsigned)sizeof(INF)) /*  ひとつのレコードの大きさ  */
  97. #define IR_FNAMELEN  8                      /*  ファイル名領域の大きさ    */
  98. #define IR_NAMELEN  11                      /*  アイテム名の大きさ        */
  99. #define IR_CMDLEN   64                      /*  コマンドラインの大きさ    */
  100. #define IR_FNAMLEN   8                      /*  ファイル名の大きさ        */
  101. #define IR_FEXTLEN   3                      /*  拡張子の大きさ            */
  102.  
  103. #define RET_DEFAULT -1
  104. #define RET_LOAD    1
  105. #define RET_SAVE    2
  106. #define RET_QUIT    3
  107. #define RET_MODE    4
  108.  
  109. #define ERR_NOERROR  1      /*  エラーなし              */
  110. #define ERR_ABORT   -1      /*  バッファ破壊後のエラー  */
  111. #define ERR_BREAK    0      /*  バッファ破壊前のエラー  */
  112.  
  113.  
  114. typedef struct
  115. {
  116.     char    fname[IR_FNAMLEN] ; /*  ベースネーム        */
  117.     char    dot ;               /*  "."                 */
  118.     char    fext[IR_FEXTLEN] ;  /*  拡張子              */
  119.     char    dirflag ;           /*  ディレクトリフラグ  */
  120.     char    dum ;               /*  ダミー              */
  121.     u_char  icon_num ;          /*  アイコン番号        */
  122.     char    nulls[15] ;         /*  Reserve ?           */
  123.     char    space[21] ;         /*  Reserve ?           */
  124.     u_char  name[13] ;          /*  アイテム名          */
  125.     u_char  cmd[IR_CMDLEN] ;    /*  パス名とパラメータ  */
  126. } INF ;
  127.  
  128.  
  129. typedef struct
  130. {
  131.     char    pat[ 128 ] ;
  132.     char    dummy[ 128 ] ;  /*  単なるムダ  */
  133. } ICON ;
  134.  
  135.  
  136. typedef struct
  137. {
  138.     int     x, y ;          /*  カーソル位置  */
  139.     char    xsiz, ysiz ;    /*  X, Y 方向の大きさ  */
  140.     char    ptn[256] ;
  141. }   MOS ;
  142.  
  143. typedef struct
  144. {
  145.     char    pathlist[ 256 ] ;       /*  パスリスト              */
  146.     ICON    icon[ 128 ] ;           /*  アイコンパターン        */
  147.     INF     inf[ MAX_INF ] ;        /*  現在のデータ            */
  148.     int     maxnum ;                /*  現在の最大数            */
  149.     INF     org_inf[ MAX_INF ] ;    /*  ロードしたときのデータ  */
  150.     int     org_maxnum ;            /*  ロードしたときの最大数  */
  151. }   INFO ;
  152.  
  153. extern  char    *VERSION ;
  154. extern  char    *DATE ;
  155.  
  156. extern  int     active_buf ;        /*  現在アクティブなバッファ番号  */
  157. extern  INFO    info[MULTI_BUF] ;   /*  マルチ・ファイル・バッファ  */
  158.  
  159. extern  ICON    icon[ 128 ] ;
  160. extern  INF     inf[ MAX_INF ] ;
  161. extern  int     maxnum ;
  162.  
  163. extern  char    *msg[ MAX_DSP_MSG ] ;
  164. extern  char    *msg_error ;
  165. extern  char    *msg_kakunin ;
  166. extern  char    *msg_btn1[MAX_BTN_MSG+1] ;
  167. extern  char    *msg_btn2[MAX_BTN_MSG+1] ;
  168.  
  169. extern  MOS     mosptn[] ;      /*  マウス・カーソル  */
  170. extern  char    ptn_door[], ptn_edit[], ptn_move[] ;
  171.  
  172. extern  int     load_count ;    /*  TMENU.ICN(INF) をロードした回数  */
  173. extern  int     mos_disp ;
  174. extern  int     cancel_on ;
  175. extern  int     now_palet ;
  176.  
  177. extern  CONFIG  setup ;
  178.  
  179.  
  180. /*  tie.c/move.c  */
  181. extern  int     select_mode( char *ttl, char *msg[], char *btn[] ) ;
  182. extern  char    *save_file( char *file ) ;
  183. extern  char    *load_file( void ) ;
  184. extern  char    *select_file( char *, char cmd ) ;
  185. extern  int     edit_move( char * ) ;
  186. extern  void    dsp_item( int num, INF *ip, int clear ) ;
  187. extern  void    del_inf( int ) ;
  188. extern  int     end_assert( char * ) ;
  189. extern  void    toupper_inf( INF *ip ) ;
  190. extern  void    readicon( char *path ) ;
  191. extern  int     sep_dirmode( char * ) ;
  192. extern  void    init_file_buf( int max ) ;
  193. extern  char    *change_buf( char *file ) ;
  194.  
  195. /*  edit.c  */
  196. extern  int     edit_text( char * ) ;
  197. extern  void    click_cancel( void ) ;
  198. extern  void    assert( char *ttl, char *msg[] ) ;
  199. extern  void    set_inf( INF *ip, char *path ) ;
  200. extern  void    init_inf( INF *ip, char *path, char *title, int icon_num ) ;
  201. extern  void    refresh_inf( INF *ip ) ;
  202. extern  int     edit_item( INF *ip ) ;  /*  内容編集  */
  203. extern  void    dsp_menu2( char *, void (*)(), void (*)() ) ;
  204.  
  205. /*  cons.c  */
  206. extern  int     lineedit( int *x,int *y, int len,int *cpos,
  207.                     int forcol,int bakcol,int curcol, u_char *buf ) ;
  208. extern  void    KAN_start( void ) ;
  209. extern  void    KAN_end( void ) ;
  210. extern  void    typecheck( char type[], char buf[], int width ) ;
  211. extern  void    keyflush( void ) ;
  212. extern  int     kbhit( int open_check ) ;
  213. extern  int     getch( void ) ;
  214. extern  void    putch( int ch ) ;
  215. extern  void    wind_close( void ) ;
  216. extern  WIND    *wind_open( int x,int y, int len,int *curpos,
  217.                                     int col, int bak,int cur, char *init ) ;
  218.  
  219. extern  void    MOS_PAD_rdpos( int *sw, int *x, int *y ) ;
  220.  
  221.